package indigo.utils 
{
	/**
	 * IDisposableEventDispatcher provides extra functionality to the EventDispatcher.
	 * The IDisposableEventDispatcher keeps a list of all its listeners so it can remove
	 * them when disposed. 
	 * 
	 */
	public interface IDisposableEventDispatcher 
	{
		/**
		 * @inheritDoc
		 * 
		 */
		function addEventListener( type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false ):void;

		
		/**
		 * @inheritDoc
		 * 
		 */
		function removeEventListener( type:String, listener:Function, useCapture:Boolean = false ):void;

		
		/**
		 * @inheritDoc
		 * 
		 */
		function removeListeners():void;
	}
}
